Amazon DynamoDB Streams এবং AWS Lambda ব্যবহার করে আপনি real-time ডেটা ট্রিগার করতে পারেন। DynamoDB Streams এর মাধ্যমে আপনি DynamoDB টেবিলের সব পরিবর্তন (Insert, Update, Delete) ট্র্যাক করতে পারেন, এবং AWS Lambda ফাংশন ব্যবহার করে সেই পরিবর্তনগুলির উপর নির্দিষ্ট কাজ বা প্রসেসিং করতে পারেন।
এই কনফিগারেশনটি অত্যন্ত কার্যকরী যখন আপনি:
প্রথমে, আপনাকে DynamoDB Streams চালু করতে হবে যাতে টেবিলের সব পরিবর্তন ট্র্যাক করা যায়।
এখন আপনার টেবিলের জন্য DynamoDB Streams চালু হয়ে যাবে এবং ডেটা পরিবর্তনের ট্র্যাকিং শুরু হবে।
আপনার স্ট্রিম থেকে ডেটা টেনে এনে কিছু অ্যাকশন (যেমন: ডেটাবেস আপডেট, ইমেইল পাঠানো, লগিং, বা অন্য কোনো প্রসেসিং) করতে AWS Lambda ফাংশন তৈরি করতে হবে।
ফাংশনের কোড এডিটর থেকে আপনার Lambda ফাংশন লিখুন, যা DynamoDB Streams থেকে ডেটা প্রক্রিয়াকরণ করবে। উদাহরণস্বরূপ:
import json
def lambda_handler(event, context):
# DynamoDB Stream থেকে ইভেন্ট প্রাপ্তি
for record in event['Records']:
print("DynamoDB Event: ", record)
# এখানে আপনার প্রক্রিয়াকরণ কোড হবে (যেমন ডেটাবেস আপডেট, লগিং, বা অন্য কাজ)
return {
'statusCode': 200,
'body': json.dumps('Success')
}
এখন আপনি DynamoDB Streams এবং Lambda ফাংশন একসাথে সংযোগ করবেন, যাতে DynamoDB টেবিলে কোনো পরিবর্তন ঘটলেই Lambda ফাংশন স্বয়ংক্রিয়ভাবে ট্রিগার হয়।
এখন যখনই DynamoDB টেবিলে কোনো পরিবর্তন হবে, DynamoDB Streams সেই পরিবর্তনকে Lambda ফাংশনে পাঠাবে এবং আপনার ফাংশনটি সেই পরিবর্তনের উপর নির্ভর করে কিছু কাজ করবে (যেমন, ডেটা প্রসেসিং, সিস্টেমে ট্রিগার ইত্যাদি)।
import json
import boto3
# SES (Simple Email Service) client তৈরি
ses = boto3.client('ses')
def lambda_handler(event, context):
for record in event['Records']:
if record['eventName'] == 'INSERT':
# নতুন অর্ডার ডেটা
new_order = record['dynamodb']['NewImage']
order_id = new_order['OrderID']['S']
customer_email = new_order['CustomerEmail']['S']
# ইমেইল পাঠানো
response = ses.send_email(
Source='your-email@example.com',
Destination={
'ToAddresses': [customer_email]
},
Message={
'Subject': {'Data': f'Order {order_id} Confirmation'},
'Body': {'Text': {'Data': f'Your order {order_id} has been placed successfully!'}}
}
)
print(f'Email sent to {customer_email} regarding order {order_id}')
return {
'statusCode': 200,
'body': json.dumps('Success')
}
এখানে যখন একটি নতুন অর্ডার DynamoDB টেবিলে ইনসার্ট হবে, Lambda ফাংশন তা ট্র্যাক করে এবং কাস্টমারের ইমেইলে একটি কনফার্মেশন পাঠাবে।
DynamoDB Streams এবং Lambda ব্যবহার করে আপনি সহজেই Real-time Data Trigger কনফিগার করতে পারেন। এটি আপনাকে ডেটা পরিবর্তনগুলির উপর ভিত্তি করে বিভিন্ন ধরনের সিস্টেম ইন্টিগ্রেশন, অ্যাকশন ট্রিগার বা ডেটা প্রসেসিং করতে সাহায্য করে, যা আপনার অ্যাপ্লিকেশনের পারফরম্যান্স এবং ফিচার সমৃদ্ধ করে।
common.read_more